package Year21_Month12.day1209;

public class Solution2 {
    public int minEatingSpeed(int[] piles, int h) {
        int right = 0,left = 1;
        for(int pile:piles){
            right = Math.max(right,pile);
        }
        while(left < right){
            int mid = (left + right) / 2;
            int hourcount = 0;
            for(int pile:piles){
                if(pile % mid == 0){
                    hourcount += pile / mid;
                }else{
                    hourcount += pile / mid + 1;
                }
            }
            if(hourcount > h){
                left = mid + 1;
            }else{
                right = mid;
            }
        }

        return left;
    }
    /*
    这里注意一下，对于左右的值应该注意一下，因为它最多一个小时只能吃一堆。
    所以注意N堆香蕉这里的N一定是远远小于H小时
    所有这里的话最小值可以是一堆香蕉中的最小值，然后右值可以是香蕉里面的最大值
    */
}
